package com.ccp.dev.system.dao;


import com.ccp.dev.system.model.ObjRights;

import java.util.List;

/**
 * 对象权限 数据层
 *
 * @author doufangzheng
 * @date 2019-03-22
 */
public interface ObjRightsDao {
    /**
     * 查询对象权限信息
     *
     * @param id 对象权限ID
     * @return 对象权限信息
     */
    ObjRights selectObjRightsById(String id);

    /**
     * 查询对象权限列表
     *
     * @param objRights 对象权限信息
     * @return 对象权限集合
     */
    List<ObjRights> selectObjRightsList(ObjRights objRights);

    /**
     * 新增对象权限
     *
     * @param objRights 对象权限信息
     * @return 返回新增对象权限数据信息
     */
    int insertObjRights(ObjRights objRights);

    /**
     * 新增对象权限
     *
     * @param objRightsList 对象权限信息
     * @return 返回批量新增对象权限
     */
    int insertObjRightsBatch(List<ObjRights> objRightsList);


    /**
     * 修改对象权限
     *
     * @param objRights 对象权限信息
     * @return 返回修改对象权限数据
     */
    int updateObjRights(ObjRights objRights);

    /**
     * 删除对象权限
     *
     * @param id 对象权限ID
     * @return 删除对象权限信息
     */
    int deleteObjRightsById(String id);

    /**
     * 批量删除对象权限
     *
     * @param ids 需要删除的数据ID
     * @return 返回批量删除对象权限数据信息
     */
    int deleteObjRightsByIds(String[] ids);

    /**
     * 删除某个对象下的所有权限
     *
     * @param objRights 需要删除的数据对象ID
     * @return 返回删除某个对象下的所有权限
     */
    int deleteObjRightsByObjectIdAndRightType(ObjRights objRights);

    /**
     * 根据被授权对象和授权类型删除对应数据
     *
     * @param objRights 需要删除的数据对象
     * @return 返回根据被授权对象和授权类型删除对应数据信息
     */
    int deleteObjRightsByOwnerIdAndRightType(ObjRights objRights);

}